# Copyright 2016-2021 The Khronos Group Inc.
# SPDX-License-Identifier: Apache-2.0

# The style used for all options not specifically set in the configuration.
BasedOnStyle: LLVM

# The extra indent or outdent of access modifiers, e.g. public:.
AccessModifierOffset: -4

# If true, aligns escaped newlines as far left as possible. Otherwise puts them into the right-most column.
AlignEscapedNewlinesLeft: true

# If true, aligns trailing comments.
AlignTrailingComments: false

# Allow putting all parameters of a function declaration onto the next line even if BinPackParameters is false.
AllowAllParametersOfDeclarationOnNextLine: false

# Allows contracting simple braced statements to a single line.
AllowShortBlocksOnASingleLine: false

# If true, short case labels will be contracted to a single line.
AllowShortCaseLabelsOnASingleLine: false

# Dependent on the value, int f() { return 0; } can be put on a single line. Possible values: None, Inline, All.
AllowShortFunctionsOnASingleLine: None

# If true, if (a) return; can be put on a single line.
AllowShortIfStatementsOnASingleLine: false

# If true, while (true) continue; can be put on a single line.
AllowShortLoopsOnASingleLine: false

# If true, always break after function definition return types.
AlwaysBreakAfterDefinitionReturnType: false

# If true, always break before multiline string literals.
AlwaysBreakBeforeMultilineStrings: false

# If true, always break after the template<...> of a template declaration.
AlwaysBreakTemplateDeclarations: true

# If false, a function call's arguments will either be all on the same line or will have one line each.
BinPackArguments: true

# If false, a function declaration's or function definition's parameters will either all be on the same line
# or will have one line each.
BinPackParameters: true

# The way to wrap binary operators. Possible values: None, NonAssignment, All.
BreakBeforeBinaryOperators: None

# The brace breaking style to use. Possible values: Attach, Linux, Stroustrup, Allman, GNU.
BreakBeforeBraces: Allman

# If true, ternary operators will be placed after line breaks.
BreakBeforeTernaryOperators: false

# Always break constructor initializers before commas and align the commas with the colon.
BreakConstructorInitializersBeforeComma: true

# The column limit. A column limit of 0 means that there is no column limit.
ColumnLimit: 120

# A regular expression that describes comments with special meaning, which should not be split into lines or otherwise changed.
CommentPragmas: '^ *'

# If the constructor initializers don't fit on a line, put each initializer on its own line.
ConstructorInitializerAllOnOneLineOrOnePerLine: false

# The number of characters to use for indentation of constructor initializer lists.
ConstructorInitializerIndentWidth: 4

# Indent width for line continuations.
ContinuationIndentWidth: 4

# If true, format braced lists as best suited for C++11 braced lists.
Cpp11BracedListStyle: false

# Disables formatting at all.
DisableFormat: false

# A vector of macros that should be interpreted as foreach loops instead of as function calls.
#ForEachMacros: ''

# Indent case labels one level from the switch statement.
# When false, use the same indentation level as for the switch statement.
# Switch statement body is always indented one level more than case labels.
IndentCaseLabels: false

# The number of columns to use for indentation.
IndentWidth: 4

# Indent if a function definition or declaration is wrapped after the type.
IndentWrappedFunctionNames: false

# If true, empty lines at the start of blocks are kept.
KeepEmptyLinesAtTheStartOfBlocks: true

# Language, this format style is targeted at. Possible values: None, Cpp, Java, JavaScript, Proto.
Language: Cpp

# The maximum number of consecutive empty lines to keep.
MaxEmptyLinesToKeep: 1

# The indentation used for namespaces. Possible values: None, Inner, All.
NamespaceIndentation: None

# The penalty for breaking a function call after "call(".
PenaltyBreakBeforeFirstCallParameter: 19

# The penalty for each line break introduced inside a comment.
PenaltyBreakComment: 300

# The penalty for breaking before the first <<.
PenaltyBreakFirstLessLess: 120

# The penalty for each line break introduced inside a string literal.
PenaltyBreakString: 1000

# The penalty for each character outside of the column limit.
PenaltyExcessCharacter: 1000000

# Penalty for putting the return type of a function onto its own line.
PenaltyReturnTypeOnItsOwnLine: 1000000000

# Pointer and reference alignment style. Possible values: Left, Right, Middle.
PointerAlignment: Right

# If true, a space may be inserted after C style casts.
SpaceAfterCStyleCast: false

# If false, spaces will be removed before assignment operators.
SpaceBeforeAssignmentOperators: true

# Defines in which cases to put a space before opening parentheses. Possible values: Never, ControlStatements, Always.
SpaceBeforeParens: ControlStatements

# If true, spaces may be inserted into '()'.
SpaceInEmptyParentheses: false

# The number of spaces before trailing line comments (// - comments).
SpacesBeforeTrailingComments: 1

# If true, spaces will be inserted after '<' and before '>' in template argument lists.
SpacesInAngles: false

# If true, spaces may be inserted into C style casts.
SpacesInCStyleCastParentheses: false

# If true, spaces are inserted inside container literals (e.g. ObjC and Javascript array and dict literals).
SpacesInContainerLiterals: false

# If true, spaces will be inserted after '(' and before ')'.
SpacesInParentheses: false

# If true, spaces will be inserted after '[' and befor']'.
SpacesInSquareBrackets: false

# Format compatible with this standard, e.g. use A<A<int> > instead of A<A<int>> for LS_Cpp03. Possible values: Cpp03, Cpp11, Auto.
Standard: Cpp11

# The number of columns used for tab stops.
TabWidth: 4

# The way to use tab characters in the resulting file. Possible values: Never, ForIndentation, Always.
UseTab: ForIndentation

# Do not reflow comments
ReflowComments: false
